<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::MomentOfInertiaEstimation&lt; PointT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_moment_of_inertia_estimation.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="classpcl_1_1_moment_of_inertia_estimation-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::MomentOfInertiaEstimation&lt; PointT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Implements the method for extracting features based on moment of inertia. It also calculates AABB, OBB and eccentricity of the projected cloud.  
 <a href="classpcl_1_1_moment_of_inertia_estimation.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="moment__of__inertia__estimation_8h_source.html">moment_of_inertia_estimation.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::MomentOfInertiaEstimation&lt; PointT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_moment_of_inertia_estimation.png" usemap="#pcl::MomentOfInertiaEstimation_3C_20PointT_20_3E_map" alt=""/>
  <map id="pcl::MomentOfInertiaEstimation_3C_20PointT_20_3E_map" name="pcl::MomentOfInertiaEstimation_3C_20PointT_20_3E_map">
<area href="classpcl_1_1_p_c_l_base.html" title="PCL base class. Implements methods that are used by most PCL algorithms." alt="pcl::PCLBase&lt; PointT &gt;" shape="rect" coords="0,0,243,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a43c5b0fd36b0b246f45ea1bdab1ce584"><td class="memItemLeft" align="right" valign="top"><a id="a43c5b0fd36b0b246f45ea1bdab1ce584"></a>
typedef <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:a43c5b0fd36b0b246f45ea1bdab1ce584"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac38f7180b609fc7311c02b9679310721"><td class="memItemLeft" align="right" valign="top"><a id="ac38f7180b609fc7311c02b9679310721"></a>
typedef <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::PointIndicesConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesConstPtr</b></td></tr>
<tr class="separator:ac38f7180b609fc7311c02b9679310721"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae2f6f6863a73337858b7a7a054eaae4f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ab84dd662cda89edb882fe5307b2136ea"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ac8326513fad0680b6993e2f1a79a6af4"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae51eae0c7b3e0b7178f4894dff90660a"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesPtr</b></td></tr>
<tr class="separator:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a51771056fb4ab8c448a11157acbe2ee0"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> const  &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesConstPtr</b></td></tr>
<tr class="separator:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:abd6a71e7c5335c7571dec423283317a1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#abd6a71e7c5335c7571dec423283317a1">setInputCloud</a> (const PointCloudConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:abd6a71e7c5335c7571dec423283317a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset  <a href="classpcl_1_1_moment_of_inertia_estimation.html#abd6a71e7c5335c7571dec423283317a1">更多...</a><br /></td></tr>
<tr class="separator:abd6a71e7c5335c7571dec423283317a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf6953c283561f30f4339698807054b1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#abf6953c283561f30f4339698807054b1">setIndices</a> (const IndicesPtr &amp;indices)</td></tr>
<tr class="memdesc:abf6953c283561f30f4339698807054b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#abf6953c283561f30f4339698807054b1">更多...</a><br /></td></tr>
<tr class="separator:abf6953c283561f30f4339698807054b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac073db4f8d28516ff2489cbd3d7ea8f9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#ac073db4f8d28516ff2489cbd3d7ea8f9">setIndices</a> (const IndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:ac073db4f8d28516ff2489cbd3d7ea8f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#ac073db4f8d28516ff2489cbd3d7ea8f9">更多...</a><br /></td></tr>
<tr class="separator:ac073db4f8d28516ff2489cbd3d7ea8f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93e210dc24f0ced029ff2fb7b7e2b645"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a93e210dc24f0ced029ff2fb7b7e2b645">setIndices</a> (const PointIndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:a93e210dc24f0ced029ff2fb7b7e2b645"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#a93e210dc24f0ced029ff2fb7b7e2b645">更多...</a><br /></td></tr>
<tr class="separator:a93e210dc24f0ced029ff2fb7b7e2b645"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abefbf08dfcfcac1b0aa0e5b09fe92c9e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#abefbf08dfcfcac1b0aa0e5b09fe92c9e">setIndices</a> (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)</td></tr>
<tr class="memdesc:abefbf08dfcfcac1b0aa0e5b09fe92c9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the indices for the points laying within an interest region of the point cloud.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#abefbf08dfcfcac1b0aa0e5b09fe92c9e">更多...</a><br /></td></tr>
<tr class="separator:abefbf08dfcfcac1b0aa0e5b09fe92c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab15683239a2e14b2f230782b0db1a8d1"><td class="memItemLeft" align="right" valign="top"><a id="ab15683239a2e14b2f230782b0db1a8d1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#ab15683239a2e14b2f230782b0db1a8d1">MomentOfInertiaEstimation</a> ()</td></tr>
<tr class="memdesc:ab15683239a2e14b2f230782b0db1a8d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that sets default values for member variables. <br /></td></tr>
<tr class="separator:ab15683239a2e14b2f230782b0db1a8d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79cd4a694ed5c338a9b182d2d821e695"><td class="memItemLeft" align="right" valign="top"><a id="a79cd4a694ed5c338a9b182d2d821e695"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a79cd4a694ed5c338a9b182d2d821e695">~MomentOfInertiaEstimation</a> ()</td></tr>
<tr class="memdesc:a79cd4a694ed5c338a9b182d2d821e695"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor which frees the memory. <br /></td></tr>
<tr class="separator:a79cd4a694ed5c338a9b182d2d821e695"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac2fd81cbf6eb02d5f1e1f462d640c6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aac2fd81cbf6eb02d5f1e1f462d640c6c">setAngleStep</a> (const float step)</td></tr>
<tr class="memdesc:aac2fd81cbf6eb02d5f1e1f462d640c6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method allows to set the angle step. It is used for the rotation of the axis which is used for moment of inertia/eccentricity calculation.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#aac2fd81cbf6eb02d5f1e1f462d640c6c">更多...</a><br /></td></tr>
<tr class="separator:aac2fd81cbf6eb02d5f1e1f462d640c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0625af4e2c78edf76dda829dcea53ff5"><td class="memItemLeft" align="right" valign="top"><a id="a0625af4e2c78edf76dda829dcea53ff5"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a0625af4e2c78edf76dda829dcea53ff5">getAngleStep</a> () const</td></tr>
<tr class="memdesc:a0625af4e2c78edf76dda829dcea53ff5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the angle step. <br /></td></tr>
<tr class="separator:a0625af4e2c78edf76dda829dcea53ff5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9149b19d2ffaac9926db2d0f48cff30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aa9149b19d2ffaac9926db2d0f48cff30">setNormalizePointMassFlag</a> (bool need_to_normalize)</td></tr>
<tr class="memdesc:aa9149b19d2ffaac9926db2d0f48cff30"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method allows to set the normalize_ flag. If set to false, then point_mass_ will be used to scale the moment of inertia values. Otherwise, point_mass_ will be set to 1 / number_of_points. Default value is true.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#aa9149b19d2ffaac9926db2d0f48cff30">更多...</a><br /></td></tr>
<tr class="separator:aa9149b19d2ffaac9926db2d0f48cff30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d824622d848378fe608c2a0563f07ad"><td class="memItemLeft" align="right" valign="top"><a id="a9d824622d848378fe608c2a0563f07ad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a9d824622d848378fe608c2a0563f07ad">getNormalizePointMassFlag</a> () const</td></tr>
<tr class="memdesc:a9d824622d848378fe608c2a0563f07ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the normalize_ flag. <br /></td></tr>
<tr class="separator:a9d824622d848378fe608c2a0563f07ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa915646af4de7b704bd227c3374f0b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aaa915646af4de7b704bd227c3374f0b3">setPointMass</a> (const float point_mass)</td></tr>
<tr class="memdesc:aaa915646af4de7b704bd227c3374f0b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method allows to set point mass that will be used for moment of inertia calculation. It is needed to scale moment of inertia values. default value is 0.0001.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#aaa915646af4de7b704bd227c3374f0b3">更多...</a><br /></td></tr>
<tr class="separator:aaa915646af4de7b704bd227c3374f0b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66a194f783bd25e9a3b27caa260609bb"><td class="memItemLeft" align="right" valign="top"><a id="a66a194f783bd25e9a3b27caa260609bb"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a66a194f783bd25e9a3b27caa260609bb">getPointMass</a> () const</td></tr>
<tr class="memdesc:a66a194f783bd25e9a3b27caa260609bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the mass of point. <br /></td></tr>
<tr class="separator:a66a194f783bd25e9a3b27caa260609bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3183fdc19a64022afd1925548fe0c0ba"><td class="memItemLeft" align="right" valign="top"><a id="a3183fdc19a64022afd1925548fe0c0ba"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a3183fdc19a64022afd1925548fe0c0ba">compute</a> ()</td></tr>
<tr class="memdesc:a3183fdc19a64022afd1925548fe0c0ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method launches the computation of all features. After execution it sets is_valid_ flag to true and each feature can be accessed with the corresponding get method. <br /></td></tr>
<tr class="separator:a3183fdc19a64022afd1925548fe0c0ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71cd248a65c937f236b3e633250b6c9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aa71cd248a65c937f236b3e633250b6c9">getAABB</a> (<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;min_point, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;max_point) const</td></tr>
<tr class="memdesc:aa71cd248a65c937f236b3e633250b6c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method gives access to the computed axis aligned bounding box. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#aa71cd248a65c937f236b3e633250b6c9">更多...</a><br /></td></tr>
<tr class="separator:aa71cd248a65c937f236b3e633250b6c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86e92ba5fc831ebbe4c106e1e0c60a8b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a86e92ba5fc831ebbe4c106e1e0c60a8b">getOBB</a> (<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;min_point, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;max_point, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;position, Eigen::Matrix3f &amp;rotational_matrix) const</td></tr>
<tr class="memdesc:a86e92ba5fc831ebbe4c106e1e0c60a8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method gives access to the computed oriented bounding box. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. Note that in order to get the OBB, each vertex of the given AABB (specified with min_point and max_point) must be rotated with the given rotational matrix (rotation transform) and then positioned. Also pay attention to the fact that this is not the minimal possible bounding box. This is the bounding box which is oriented in accordance with the eigen vectors.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#a86e92ba5fc831ebbe4c106e1e0c60a8b">更多...</a><br /></td></tr>
<tr class="separator:a86e92ba5fc831ebbe4c106e1e0c60a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42e3704f86f836296cc0b4f1aa1daf04"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a42e3704f86f836296cc0b4f1aa1daf04">getEigenValues</a> (float &amp;major, float &amp;middle, float &amp;minor) const</td></tr>
<tr class="memdesc:a42e3704f86f836296cc0b4f1aa1daf04"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method gives access to the computed eigen values. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#a42e3704f86f836296cc0b4f1aa1daf04">更多...</a><br /></td></tr>
<tr class="separator:a42e3704f86f836296cc0b4f1aa1daf04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe3ee297fd25d8c62bb0311cdfd27cc4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#afe3ee297fd25d8c62bb0311cdfd27cc4">getEigenVectors</a> (Eigen::Vector3f &amp;major, Eigen::Vector3f &amp;middle, Eigen::Vector3f &amp;minor) const</td></tr>
<tr class="memdesc:afe3ee297fd25d8c62bb0311cdfd27cc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method gives access to the computed eigen vectors. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#afe3ee297fd25d8c62bb0311cdfd27cc4">更多...</a><br /></td></tr>
<tr class="separator:afe3ee297fd25d8c62bb0311cdfd27cc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfee828daeb216b0590784ff936582ca"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#adfee828daeb216b0590784ff936582ca">getMomentOfInertia</a> (std::vector&lt; float &gt; &amp;moment_of_inertia) const</td></tr>
<tr class="memdesc:adfee828daeb216b0590784ff936582ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method gives access to the computed moments of inertia. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#adfee828daeb216b0590784ff936582ca">更多...</a><br /></td></tr>
<tr class="separator:adfee828daeb216b0590784ff936582ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fc76964931393c32661a009b5303a09"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a7fc76964931393c32661a009b5303a09">getEccentricity</a> (std::vector&lt; float &gt; &amp;eccentricity) const</td></tr>
<tr class="memdesc:a7fc76964931393c32661a009b5303a09"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method gives access to the computed ecentricities. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#a7fc76964931393c32661a009b5303a09">更多...</a><br /></td></tr>
<tr class="separator:a7fc76964931393c32661a009b5303a09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab21c613778ad9199790079d7491bd030"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#ab21c613778ad9199790079d7491bd030">getMassCenter</a> (Eigen::Vector3f &amp;mass_center) const</td></tr>
<tr class="memdesc:ab21c613778ad9199790079d7491bd030"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method gives access to the computed mass center. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. Note that when mass center of a cloud is computed, mass point is always considered equal 1.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#ab21c613778ad9199790079d7491bd030">更多...</a><br /></td></tr>
<tr class="separator:ab21c613778ad9199790079d7491bd030"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="af4fbc5eb005057f8a0fc6d60bde595df"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af4fbc5eb005057f8a0fc6d60bde595df">PCLBase</a> ()</td></tr>
<tr class="memdesc:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a7a6dd7a91275d7737cf1b18005b47244"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a7a6dd7a91275d7737cf1b18005b47244">PCLBase</a> (const <a class="el" href="classpcl_1_1_p_c_l_base.html">PCLBase</a> &amp;base)</td></tr>
<tr class="memdesc:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ad5d6846e98e59c37dcc3dc9958d53966"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ad5d6846e98e59c37dcc3dc9958d53966">~PCLBase</a> ()</td></tr>
<tr class="memdesc:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a8cd745c4f7a792212f4fc3720b9d46ea"></a>
PointCloudConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a8cd745c4f7a792212f4fc3720b9d46ea">getInputCloud</a> () const</td></tr>
<tr class="memdesc:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the input point cloud dataset. <br /></td></tr>
<tr class="separator:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a058753dd4de73d3d0062fe2e452fba3c"></a>
IndicesPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a058753dd4de73d3d0062fe2e452fba3c">getIndices</a> ()</td></tr>
<tr class="memdesc:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="acae187b37230758959572ceb1e6e2045"></a>
IndicesConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acae187b37230758959572ceb1e6e2045">getIndices</a> () const</td></tr>
<tr class="memdesc:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">operator[]</a> (size_t pos) const</td></tr>
<tr class="memdesc:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> operator[] to shorten code  <a href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">更多...</a><br /></td></tr>
<tr class="separator:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:a81d387c915a945faaf06b9d079366ec7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a81d387c915a945faaf06b9d079366ec7">rotateVector</a> (const Eigen::Vector3f &amp;vector, const Eigen::Vector3f &amp;axis, const float angle, Eigen::Vector3f &amp;rotated_vector) const</td></tr>
<tr class="memdesc:a81d387c915a945faaf06b9d079366ec7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method rotates the given vector around the given axis.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#a81d387c915a945faaf06b9d079366ec7">更多...</a><br /></td></tr>
<tr class="separator:a81d387c915a945faaf06b9d079366ec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0ea16459352e1c6b85b8c19a95e21e9"><td class="memItemLeft" align="right" valign="top"><a id="ac0ea16459352e1c6b85b8c19a95e21e9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#ac0ea16459352e1c6b85b8c19a95e21e9">computeMeanValue</a> ()</td></tr>
<tr class="memdesc:ac0ea16459352e1c6b85b8c19a95e21e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method computes center of mass and axis aligned bounding box. <br /></td></tr>
<tr class="separator:ac0ea16459352e1c6b85b8c19a95e21e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaad7ae0a0424c10786fc4d741336c6da"><td class="memItemLeft" align="right" valign="top"><a id="aaad7ae0a0424c10786fc4d741336c6da"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aaad7ae0a0424c10786fc4d741336c6da">computeOBB</a> ()</td></tr>
<tr class="memdesc:aaad7ae0a0424c10786fc4d741336c6da"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method computes the oriented bounding box. <br /></td></tr>
<tr class="separator:aaad7ae0a0424c10786fc4d741336c6da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeb769520aa9ce994531d9cd03046222"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aaeb769520aa9ce994531d9cd03046222">computeCovarianceMatrix</a> (Eigen::Matrix&lt; float, 3, 3 &gt; &amp;covariance_matrix) const</td></tr>
<tr class="memdesc:aaeb769520aa9ce994531d9cd03046222"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method computes the covariance matrix for the input_ cloud.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#aaeb769520aa9ce994531d9cd03046222">更多...</a><br /></td></tr>
<tr class="separator:aaeb769520aa9ce994531d9cd03046222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe34d23e64591dcb215811fe837ba31b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#abe34d23e64591dcb215811fe837ba31b">computeCovarianceMatrix</a> (PointCloudConstPtr cloud, Eigen::Matrix&lt; float, 3, 3 &gt; &amp;covariance_matrix) const</td></tr>
<tr class="memdesc:abe34d23e64591dcb215811fe837ba31b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method computes the covariance matrix for the given cloud. It uses all points in the cloud, unlike the previous method that uses indices.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#abe34d23e64591dcb215811fe837ba31b">更多...</a><br /></td></tr>
<tr class="separator:abe34d23e64591dcb215811fe837ba31b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeecfa823ccbfad77cc2380b865b7d770"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aeecfa823ccbfad77cc2380b865b7d770">computeEigenVectors</a> (const Eigen::Matrix&lt; float, 3, 3 &gt; &amp;covariance_matrix, Eigen::Vector3f &amp;major_axis, Eigen::Vector3f &amp;middle_axis, Eigen::Vector3f &amp;minor_axis, float &amp;major_value, float &amp;middle_value, float &amp;minor_value)</td></tr>
<tr class="memdesc:aeecfa823ccbfad77cc2380b865b7d770"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method calculates the eigen values and eigen vectors for the given covariance matrix. Note that it returns normalized eigen vectors that always form the right-handed coordinate system.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#aeecfa823ccbfad77cc2380b865b7d770">更多...</a><br /></td></tr>
<tr class="separator:aeecfa823ccbfad77cc2380b865b7d770"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4df0cc47393a58f6e7298acd051694b7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a4df0cc47393a58f6e7298acd051694b7">calculateMomentOfInertia</a> (const Eigen::Vector3f &amp;current_axis, const Eigen::Vector3f &amp;mean_value) const</td></tr>
<tr class="memdesc:a4df0cc47393a58f6e7298acd051694b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method returns the moment of inertia of a given input_ cloud. Note that when moment of inertia is computed it is multiplied by the point mass. Point mass can be accessed with the corresponding get/set methods.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#a4df0cc47393a58f6e7298acd051694b7">更多...</a><br /></td></tr>
<tr class="separator:a4df0cc47393a58f6e7298acd051694b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3eefe58b4467a6fe61a3d892a6f9089"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#ad3eefe58b4467a6fe61a3d892a6f9089">getProjectedCloud</a> (const Eigen::Vector3f &amp;normal_vector, const Eigen::Vector3f &amp;point, typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr projected_cloud) const</td></tr>
<tr class="memdesc:ad3eefe58b4467a6fe61a3d892a6f9089"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method simply projects the given input_ cloud on the plane specified with the normal vector.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#ad3eefe58b4467a6fe61a3d892a6f9089">更多...</a><br /></td></tr>
<tr class="separator:ad3eefe58b4467a6fe61a3d892a6f9089"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99ac573a0ad71bfaffa08b1a82866e6d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a99ac573a0ad71bfaffa08b1a82866e6d">computeEccentricity</a> (const Eigen::Matrix&lt; float, 3, 3 &gt; &amp;covariance_matrix, const Eigen::Vector3f &amp;normal_vector)</td></tr>
<tr class="memdesc:a99ac573a0ad71bfaffa08b1a82866e6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method returns the eccentricity of the projected cloud.  <a href="classpcl_1_1_moment_of_inertia_estimation.html#a99ac573a0ad71bfaffa08b1a82866e6d">更多...</a><br /></td></tr>
<tr class="separator:a99ac573a0ad71bfaffa08b1a82866e6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:a0b947a169d16283c234908eade8dffa0"><td class="memItemLeft" align="right" valign="top"><a id="a0b947a169d16283c234908eade8dffa0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a></td></tr>
<tr class="memdesc:a0b947a169d16283c234908eade8dffa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates if the stored values (eccentricity, moment of inertia, AABB etc.) are valid when accessed with the get methods. <br /></td></tr>
<tr class="separator:a0b947a169d16283c234908eade8dffa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4704720b64b7b5aa90b2154ce0df15ae"><td class="memItemLeft" align="right" valign="top"><a id="a4704720b64b7b5aa90b2154ce0df15ae"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a4704720b64b7b5aa90b2154ce0df15ae">step_</a></td></tr>
<tr class="memdesc:a4704720b64b7b5aa90b2154ce0df15ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the angle step <br /></td></tr>
<tr class="separator:a4704720b64b7b5aa90b2154ce0df15ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0dfe095b9239cb904f3b9716f632765"><td class="memItemLeft" align="right" valign="top"><a id="aa0dfe095b9239cb904f3b9716f632765"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aa0dfe095b9239cb904f3b9716f632765">point_mass_</a></td></tr>
<tr class="memdesc:aa0dfe095b9239cb904f3b9716f632765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the mass of point in the cloud <br /></td></tr>
<tr class="separator:aa0dfe095b9239cb904f3b9716f632765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac5c807734eaec35e71681a2ab179c1a"><td class="memItemLeft" align="right" valign="top"><a id="aac5c807734eaec35e71681a2ab179c1a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aac5c807734eaec35e71681a2ab179c1a">normalize_</a></td></tr>
<tr class="memdesc:aac5c807734eaec35e71681a2ab179c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the flag for mass normalization <br /></td></tr>
<tr class="separator:aac5c807734eaec35e71681a2ab179c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83b09737c57fa17ee476be82fc6d2ac9"><td class="memItemLeft" align="right" valign="top"><a id="a83b09737c57fa17ee476be82fc6d2ac9"></a>
Eigen::Vector3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">mean_value_</a></td></tr>
<tr class="memdesc:a83b09737c57fa17ee476be82fc6d2ac9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the mean value (center of mass) of the cloud <br /></td></tr>
<tr class="separator:a83b09737c57fa17ee476be82fc6d2ac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6d6bcb2838c111297e0a7439354d8a7"><td class="memItemLeft" align="right" valign="top"><a id="ae6d6bcb2838c111297e0a7439354d8a7"></a>
Eigen::Vector3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#ae6d6bcb2838c111297e0a7439354d8a7">major_axis_</a></td></tr>
<tr class="memdesc:ae6d6bcb2838c111297e0a7439354d8a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Major eigen vector <br /></td></tr>
<tr class="separator:ae6d6bcb2838c111297e0a7439354d8a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c7189a33550fd032889beb8468178f4"><td class="memItemLeft" align="right" valign="top"><a id="a2c7189a33550fd032889beb8468178f4"></a>
Eigen::Vector3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a2c7189a33550fd032889beb8468178f4">middle_axis_</a></td></tr>
<tr class="memdesc:a2c7189a33550fd032889beb8468178f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Middle eigen vector <br /></td></tr>
<tr class="separator:a2c7189a33550fd032889beb8468178f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd2333daeff6b5bce8d5c72a513ffda9"><td class="memItemLeft" align="right" valign="top"><a id="acd2333daeff6b5bce8d5c72a513ffda9"></a>
Eigen::Vector3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#acd2333daeff6b5bce8d5c72a513ffda9">minor_axis_</a></td></tr>
<tr class="memdesc:acd2333daeff6b5bce8d5c72a513ffda9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minor eigen vector <br /></td></tr>
<tr class="separator:acd2333daeff6b5bce8d5c72a513ffda9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a165ae40c0bc11f0cd3339291eb5380"><td class="memItemLeft" align="right" valign="top"><a id="a0a165ae40c0bc11f0cd3339291eb5380"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a0a165ae40c0bc11f0cd3339291eb5380">major_value_</a></td></tr>
<tr class="memdesc:a0a165ae40c0bc11f0cd3339291eb5380"><td class="mdescLeft">&#160;</td><td class="mdescRight">Major eigen value <br /></td></tr>
<tr class="separator:a0a165ae40c0bc11f0cd3339291eb5380"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07b4fef1550eadccbf69a8f7e3b16c07"><td class="memItemLeft" align="right" valign="top"><a id="a07b4fef1550eadccbf69a8f7e3b16c07"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a07b4fef1550eadccbf69a8f7e3b16c07">middle_value_</a></td></tr>
<tr class="memdesc:a07b4fef1550eadccbf69a8f7e3b16c07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Middle eigen value <br /></td></tr>
<tr class="separator:a07b4fef1550eadccbf69a8f7e3b16c07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6098701f8e074c79181e305f7c63ae0d"><td class="memItemLeft" align="right" valign="top"><a id="a6098701f8e074c79181e305f7c63ae0d"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a6098701f8e074c79181e305f7c63ae0d">minor_value_</a></td></tr>
<tr class="memdesc:a6098701f8e074c79181e305f7c63ae0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minor eigen value <br /></td></tr>
<tr class="separator:a6098701f8e074c79181e305f7c63ae0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab66f13f5d744785424443d2ac5df4720"><td class="memItemLeft" align="right" valign="top"><a id="ab66f13f5d744785424443d2ac5df4720"></a>
std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#ab66f13f5d744785424443d2ac5df4720">moment_of_inertia_</a></td></tr>
<tr class="memdesc:ab66f13f5d744785424443d2ac5df4720"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores calculated moments of inertia <br /></td></tr>
<tr class="separator:ab66f13f5d744785424443d2ac5df4720"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff040015a1c06b72dfe1c4c7239d448e"><td class="memItemLeft" align="right" valign="top"><a id="aff040015a1c06b72dfe1c4c7239d448e"></a>
std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aff040015a1c06b72dfe1c4c7239d448e">eccentricity_</a></td></tr>
<tr class="memdesc:aff040015a1c06b72dfe1c4c7239d448e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores calculated eccentricities <br /></td></tr>
<tr class="separator:aff040015a1c06b72dfe1c4c7239d448e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a879fb5187a0f7f8ad3a9fc6ecc2fe8fc"><td class="memItemLeft" align="right" valign="top"><a id="a879fb5187a0f7f8ad3a9fc6ecc2fe8fc"></a>
<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a879fb5187a0f7f8ad3a9fc6ecc2fe8fc">aabb_min_point_</a></td></tr>
<tr class="memdesc:a879fb5187a0f7f8ad3a9fc6ecc2fe8fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Min point of the axis aligned bounding box <br /></td></tr>
<tr class="separator:a879fb5187a0f7f8ad3a9fc6ecc2fe8fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e3d1ba2123e1c58137f380c06d4492c"><td class="memItemLeft" align="right" valign="top"><a id="a3e3d1ba2123e1c58137f380c06d4492c"></a>
<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a3e3d1ba2123e1c58137f380c06d4492c">aabb_max_point_</a></td></tr>
<tr class="memdesc:a3e3d1ba2123e1c58137f380c06d4492c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max point of the axis aligned bounding box <br /></td></tr>
<tr class="separator:a3e3d1ba2123e1c58137f380c06d4492c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3426207a8ff454274a9d2119f884c53d"><td class="memItemLeft" align="right" valign="top"><a id="a3426207a8ff454274a9d2119f884c53d"></a>
<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a3426207a8ff454274a9d2119f884c53d">obb_min_point_</a></td></tr>
<tr class="memdesc:a3426207a8ff454274a9d2119f884c53d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Min point of the oriented bounding box <br /></td></tr>
<tr class="separator:a3426207a8ff454274a9d2119f884c53d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a4c3e73866b8153a4e7c901746e9999"><td class="memItemLeft" align="right" valign="top"><a id="a4a4c3e73866b8153a4e7c901746e9999"></a>
<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a4a4c3e73866b8153a4e7c901746e9999">obb_max_point_</a></td></tr>
<tr class="memdesc:a4a4c3e73866b8153a4e7c901746e9999"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max point of the oriented bounding box <br /></td></tr>
<tr class="separator:a4a4c3e73866b8153a4e7c901746e9999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a231861f9ca6b21588b39cbbf7c0c0426"><td class="memItemLeft" align="right" valign="top"><a id="a231861f9ca6b21588b39cbbf7c0c0426"></a>
Eigen::Vector3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#a231861f9ca6b21588b39cbbf7c0c0426">obb_position_</a></td></tr>
<tr class="memdesc:a231861f9ca6b21588b39cbbf7c0c0426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores position of the oriented bounding box <br /></td></tr>
<tr class="separator:a231861f9ca6b21588b39cbbf7c0c0426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa64a8f7a76be5b5714919dfcc4e83ca0"><td class="memItemLeft" align="right" valign="top"><a id="aa64a8f7a76be5b5714919dfcc4e83ca0"></a>
Eigen::Matrix3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html#aa64a8f7a76be5b5714919dfcc4e83ca0">obb_rotational_matrix_</a></td></tr>
<tr class="memdesc:aa64a8f7a76be5b5714919dfcc4e83ca0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the rotational matrix of the oriented bounding box <br /></td></tr>
<tr class="separator:aa64a8f7a76be5b5714919dfcc4e83ca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">initCompute</a> ()</td></tr>
<tr class="memdesc:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called before starting the actual computation.  <a href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">更多...</a><br /></td></tr>
<tr class="separator:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="afc426c4eebb94b7734d4fa556bff1420"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ()</td></tr>
<tr class="memdesc:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called after finishing the actual computation. <br /></td></tr>
<tr class="separator:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a09c70d8e06e3fb4f07903fe6f8d67869"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a></td></tr>
<tr class="memdesc:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input point cloud dataset. <br /></td></tr>
<tr class="separator:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="aaee847c8a517ebf365bad2cb182a6626"></a>
IndicesPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a></td></tr>
<tr class="memdesc:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector of point indices to use. <br /></td></tr>
<tr class="separator:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ada1eadb824d34ca9206a86343d9760bb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a></td></tr>
<tr class="memdesc:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if point indices are used. <br /></td></tr>
<tr class="separator:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="adadb0299f144528020ed558af6879662"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a></td></tr>
<tr class="memdesc:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">If no set of indices are given, we construct a set of fake indices that mimic the input <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a>. <br /></td></tr>
<tr class="separator:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointT&gt;<br />
class pcl::MomentOfInertiaEstimation&lt; PointT &gt;</h3>

<p>Implements the method for extracting features based on moment of inertia. It also calculates AABB, OBB and eccentricity of the projected cloud. </p>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="a4df0cc47393a58f6e7298acd051694b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4df0cc47393a58f6e7298acd051694b7">&#9670;&nbsp;</a></span>calculateMomentOfInertia()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::calculateMomentOfInertia </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>current_axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>mean_value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method returns the moment of inertia of a given input_ cloud. Note that when moment of inertia is computed it is multiplied by the point mass. Point mass can be accessed with the corresponding get/set methods. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">current_axis</td><td>axis that will be used in moment of inertia computation </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mean_value</td><td>mean value(center of mass) of the cloud </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;{</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;  <span class="keywordtype">float</span> moment_of_inertia = 0.0f;</div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_points = <span class="keyword">static_cast &lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a>-&gt;size ());</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i_point = 0; i_point &lt; number_of_points; i_point++)</div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;  {</div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    Eigen::Vector3f vector;</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    vector (0) = mean_value (0) - <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[(*indices_)[i_point]].x;</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    vector (1) = mean_value (1) - <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[(*indices_)[i_point]].y;</div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    vector (2) = mean_value (2) - <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[(*indices_)[i_point]].z;</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160; </div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    Eigen::Vector3f product = vector.cross (current_axis);</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160; </div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="common_2include_2pcl_2common_2geometry_8h.html#a2fc89f0c26b7c7377fcd2851fa933b87">distance</a> = product (0) * product (0) + product (1) * product (1) + product (2) * product (2);</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160; </div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    moment_of_inertia += <a class="code" href="common_2include_2pcl_2common_2geometry_8h.html#a2fc89f0c26b7c7377fcd2851fa933b87">distance</a>;</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;  }</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160; </div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#aa0dfe095b9239cb904f3b9716f632765">point_mass_</a> * moment_of_inertia);</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_aa0dfe095b9239cb904f3b9716f632765"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#aa0dfe095b9239cb904f3b9716f632765">pcl::MomentOfInertiaEstimation::point_mass_</a></div><div class="ttdeci">float point_mass_</div><div class="ttdoc">Stores the mass of point in the cloud</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:301</div></div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_a09c70d8e06e3fb4f07903fe6f8d67869"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">pcl::PCLBase::input_</a></div><div class="ttdeci">PointCloudConstPtr input_</div><div class="ttdoc">The input point cloud dataset.</div><div class="ttdef"><b>Definition:</b> pcl_base.h:150</div></div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_aaee847c8a517ebf365bad2cb182a6626"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">pcl::PCLBase::indices_</a></div><div class="ttdeci">IndicesPtr indices_</div><div class="ttdoc">A pointer to the vector of point indices to use.</div><div class="ttdef"><b>Definition:</b> pcl_base.h:153</div></div>
<div class="ttc" id="acommon_2include_2pcl_2common_2geometry_8h_html_a2fc89f0c26b7c7377fcd2851fa933b87"><div class="ttname"><a href="common_2include_2pcl_2common_2geometry_8h.html#a2fc89f0c26b7c7377fcd2851fa933b87">pcl::geometry::distance</a></div><div class="ttdeci">float distance(const PointT &amp;p1, const PointT &amp;p2)</div><div class="ttdef"><b>Definition:</b> geometry.h:60</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aaeb769520aa9ce994531d9cd03046222"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaeb769520aa9ce994531d9cd03046222">&#9670;&nbsp;</a></span>computeCovarianceMatrix() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::computeCovarianceMatrix </td>
          <td>(</td>
          <td class="paramtype">Eigen::Matrix&lt; float, 3, 3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>covariance_matrix</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method computes the covariance matrix for the input_ cloud. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">covariance_matrix</td><td>stores the computed covariance matrix </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;{</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;  covariance_matrix.setZero ();</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_points = <span class="keyword">static_cast &lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a>-&gt;size ());</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;  <span class="keywordtype">float</span> factor = 1.0f / <span class="keyword">static_cast &lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> ((number_of_points - 1 &gt; 0)?(number_of_points - 1):1);</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i_point = 0; i_point &lt; number_of_points; i_point++)</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  {</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    Eigen::Vector3f current_point (0.0f, 0.0f, 0.0f);</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    current_point (0) = <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[(*indices_)[i_point]].x - <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">mean_value_</a> (0);</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    current_point (1) = <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[(*indices_)[i_point]].y - <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">mean_value_</a> (1);</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    current_point (2) = <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[(*indices_)[i_point]].z - <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">mean_value_</a> (2);</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    covariance_matrix += current_point * current_point.transpose ();</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;  }</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  covariance_matrix *= factor;</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a83b09737c57fa17ee476be82fc6d2ac9"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">pcl::MomentOfInertiaEstimation::mean_value_</a></div><div class="ttdeci">Eigen::Vector3f mean_value_</div><div class="ttdoc">Stores the mean value (center of mass) of the cloud</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:307</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="abe34d23e64591dcb215811fe837ba31b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe34d23e64591dcb215811fe837ba31b">&#9670;&nbsp;</a></span>computeCovarianceMatrix() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::computeCovarianceMatrix </td>
          <td>(</td>
          <td class="paramtype">PointCloudConstPtr&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Matrix&lt; float, 3, 3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>covariance_matrix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method computes the covariance matrix for the given cloud. It uses all points in the cloud, unlike the previous method that uses indices. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>cloud for which covariance matrix will be computed </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">covariance_matrix</td><td>stores the computed covariance matrix </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;{</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;  covariance_matrix.setZero ();</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_points = <span class="keyword">static_cast &lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span> (cloud-&gt;points.size ());</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;  <span class="keywordtype">float</span> factor = 1.0f / <span class="keyword">static_cast &lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> ((number_of_points - 1 &gt; 0)?(number_of_points - 1):1);</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;  Eigen::Vector3f current_point;</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i_point = 0; i_point &lt; number_of_points; i_point++)</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;  {</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    current_point (0) = cloud-&gt;points[i_point].x - <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">mean_value_</a> (0);</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    current_point (1) = cloud-&gt;points[i_point].y - <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">mean_value_</a> (1);</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    current_point (2) = cloud-&gt;points[i_point].z - <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">mean_value_</a> (2);</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160; </div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    covariance_matrix += current_point * current_point.transpose ();</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;  }</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160; </div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;  covariance_matrix *= factor;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a99ac573a0ad71bfaffa08b1a82866e6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99ac573a0ad71bfaffa08b1a82866e6d">&#9670;&nbsp;</a></span>computeEccentricity()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::computeEccentricity </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Matrix&lt; float, 3, 3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>covariance_matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>normal_vector</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method returns the eccentricity of the projected cloud. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">covariance_matrix</td><td>covariance matrix of the projected cloud </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">normal_vector</td><td>normal vector of the plane, it is used to discard the third eigen vector and eigen value </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;{</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;  Eigen::Vector3f major_axis (0.0f, 0.0f, 0.0f);</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;  Eigen::Vector3f middle_axis (0.0f, 0.0f, 0.0f);</div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;  Eigen::Vector3f minor_axis (0.0f, 0.0f, 0.0f);</div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;  <span class="keywordtype">float</span> major_value = 0.0f;</div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;  <span class="keywordtype">float</span> middle_value = 0.0f;</div>
<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;  <span class="keywordtype">float</span> minor_value = 0.0f;</div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#aeecfa823ccbfad77cc2380b865b7d770">computeEigenVectors</a> (covariance_matrix, major_axis, middle_axis, minor_axis, major_value, middle_value, minor_value);</div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160; </div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;  <span class="keywordtype">float</span> major = std::abs (major_axis.dot (normal_vector));</div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;  <span class="keywordtype">float</span> middle = std::abs (middle_axis.dot (normal_vector));</div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;  <span class="keywordtype">float</span> minor = std::abs (minor_axis.dot (normal_vector));</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160; </div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;  <span class="keywordtype">float</span> eccentricity = 0.0f;</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160; </div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;  <span class="keywordflow">if</span> (major &gt;= middle &amp;&amp; major &gt;= minor &amp;&amp; middle_value != 0.0f)</div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    eccentricity = pow (1.0f - (minor_value * minor_value) / (middle_value * middle_value), 0.5f);</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160; </div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;  <span class="keywordflow">if</span> (middle &gt;= major &amp;&amp; middle &gt;= minor &amp;&amp; major_value != 0.0f)</div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    eccentricity = pow (1.0f - (minor_value * minor_value) / (major_value * major_value), 0.5f);</div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160; </div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;  <span class="keywordflow">if</span> (minor &gt;= major &amp;&amp; minor &gt;= middle &amp;&amp; major_value != 0.0f)</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    eccentricity = pow (1.0f - (middle_value * middle_value) / (major_value * major_value), 0.5f);</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160; </div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;  <span class="keywordflow">return</span> (eccentricity);</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_aeecfa823ccbfad77cc2380b865b7d770"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#aeecfa823ccbfad77cc2380b865b7d770">pcl::MomentOfInertiaEstimation::computeEigenVectors</a></div><div class="ttdeci">void computeEigenVectors(const Eigen::Matrix&lt; float, 3, 3 &gt; &amp;covariance_matrix, Eigen::Vector3f &amp;major_axis, Eigen::Vector3f &amp;middle_axis, Eigen::Vector3f &amp;minor_axis, float &amp;major_value, float &amp;middle_value, float &amp;minor_value)</div><div class="ttdoc">This method calculates the eigen values and eigen vectors for the given covariance matrix....</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.hpp:403</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aeecfa823ccbfad77cc2380b865b7d770"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeecfa823ccbfad77cc2380b865b7d770">&#9670;&nbsp;</a></span>computeEigenVectors()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::computeEigenVectors </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Matrix&lt; float, 3, 3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>covariance_matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>major_axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>middle_axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>minor_axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>major_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>middle_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>minor_value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method calculates the eigen values and eigen vectors for the given covariance matrix. Note that it returns normalized eigen vectors that always form the right-handed coordinate system. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">covariance_matrix</td><td>covariance matrix </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">major_axis</td><td>eigen vector which corresponds to a major eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">middle_axis</td><td>eigen vector which corresponds to a middle eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">minor_axis</td><td>eigen vector which corresponds to a minor eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">major_value</td><td>major eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">middle_value</td><td>middle eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">minor_value</td><td>minor eigen value </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;{</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;  Eigen::EigenSolver &lt;Eigen::Matrix &lt;float, 3, 3&gt; &gt; eigen_solver;</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;  eigen_solver.compute (covariance_matrix);</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  Eigen::EigenSolver &lt;Eigen::Matrix &lt;float, 3, 3&gt; &gt;::EigenvectorsType eigen_vectors;</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;  Eigen::EigenSolver &lt;Eigen::Matrix &lt;float, 3, 3&gt; &gt;::EigenvalueType eigen_values;</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  eigen_vectors = eigen_solver.eigenvectors ();</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;  eigen_values = eigen_solver.eigenvalues ();</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160; </div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> temp = 0;</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> major_index = 0;</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> middle_index = 1;</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> minor_index = 2;</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; </div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;  <span class="keywordflow">if</span> (eigen_values.real () (major_index) &lt; eigen_values.real () (middle_index))</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;  {</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    temp = major_index;</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    major_index = middle_index;</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    middle_index = temp;</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;  }</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160; </div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;  <span class="keywordflow">if</span> (eigen_values.real () (major_index) &lt; eigen_values.real () (minor_index))</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;  {</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    temp = major_index;</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    major_index = minor_index;</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    minor_index = temp;</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;  }</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160; </div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;  <span class="keywordflow">if</span> (eigen_values.real () (middle_index) &lt; eigen_values.real () (minor_index))</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;  {</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    temp = minor_index;</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    minor_index = middle_index;</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    middle_index = temp;</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;  }</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;  major_value = eigen_values.real () (major_index);</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;  middle_value = eigen_values.real () (middle_index);</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;  minor_value = eigen_values.real () (minor_index);</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160; </div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;  major_axis = eigen_vectors.col (major_index).real ();</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;  middle_axis = eigen_vectors.col (middle_index).real ();</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;  minor_axis = eigen_vectors.col (minor_index).real ();</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160; </div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;  major_axis.normalize ();</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;  middle_axis.normalize ();</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;  minor_axis.normalize ();</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160; </div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;  <span class="keywordtype">float</span> det = major_axis.dot (middle_axis.cross (minor_axis));</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;  <span class="keywordflow">if</span> (det &lt;= 0.0f)</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;  {</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    major_axis (0) = -major_axis (0);</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    major_axis (1) = -major_axis (1);</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    major_axis (2) = -major_axis (2);</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;  }</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa71cd248a65c937f236b3e633250b6c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa71cd248a65c937f236b3e633250b6c9">&#9670;&nbsp;</a></span>getAABB()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getAABB </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>min_point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>max_point</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method gives access to the computed axis aligned bounding box. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">min_point</td><td>min point of the AABB </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">max_point</td><td>max point of the AABB </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;{</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;  min_point = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a879fb5187a0f7f8ad3a9fc6ecc2fe8fc">aabb_min_point_</a>;</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  max_point = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a3e3d1ba2123e1c58137f380c06d4492c">aabb_max_point_</a>;</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; </div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a>);</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a0b947a169d16283c234908eade8dffa0"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">pcl::MomentOfInertiaEstimation::is_valid_</a></div><div class="ttdeci">bool is_valid_</div><div class="ttdoc">Indicates if the stored values (eccentricity, moment of inertia, AABB etc.) are valid when accessed w...</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:295</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a3e3d1ba2123e1c58137f380c06d4492c"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a3e3d1ba2123e1c58137f380c06d4492c">pcl::MomentOfInertiaEstimation::aabb_max_point_</a></div><div class="ttdeci">PointT aabb_max_point_</div><div class="ttdoc">Max point of the axis aligned bounding box</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:337</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a879fb5187a0f7f8ad3a9fc6ecc2fe8fc"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a879fb5187a0f7f8ad3a9fc6ecc2fe8fc">pcl::MomentOfInertiaEstimation::aabb_min_point_</a></div><div class="ttdeci">PointT aabb_min_point_</div><div class="ttdoc">Min point of the axis aligned bounding box</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:334</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a7fc76964931393c32661a009b5303a09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fc76964931393c32661a009b5303a09">&#9670;&nbsp;</a></span>getEccentricity()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getEccentricity </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>eccentricity</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method gives access to the computed ecentricities. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">eccentricity</td><td>computed eccentricities </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;{</div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;  eccentricity.resize (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#aff040015a1c06b72dfe1c4c7239d448e">eccentricity_</a>.size (), 0.0f);</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  std::copy (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#aff040015a1c06b72dfe1c4c7239d448e">eccentricity_</a>.begin (), <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#aff040015a1c06b72dfe1c4c7239d448e">eccentricity_</a>.end (), eccentricity.begin ());</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160; </div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a>);</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_aff040015a1c06b72dfe1c4c7239d448e"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#aff040015a1c06b72dfe1c4c7239d448e">pcl::MomentOfInertiaEstimation::eccentricity_</a></div><div class="ttdeci">std::vector&lt; float &gt; eccentricity_</div><div class="ttdoc">Stores calculated eccentricities</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:331</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a42e3704f86f836296cc0b4f1aa1daf04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42e3704f86f836296cc0b4f1aa1daf04">&#9670;&nbsp;</a></span>getEigenValues()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getEigenValues </td>
          <td>(</td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>major</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>middle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float &amp;&#160;</td>
          <td class="paramname"><em>minor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method gives access to the computed eigen values. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">major</td><td>major eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">middle</td><td>middle eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">minor</td><td>minor eigen value </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;{</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;  major = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0a165ae40c0bc11f0cd3339291eb5380">major_value_</a>;</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;  middle = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a07b4fef1550eadccbf69a8f7e3b16c07">middle_value_</a>;</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;  minor = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a6098701f8e074c79181e305f7c63ae0d">minor_value_</a>;</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a>);</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a07b4fef1550eadccbf69a8f7e3b16c07"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a07b4fef1550eadccbf69a8f7e3b16c07">pcl::MomentOfInertiaEstimation::middle_value_</a></div><div class="ttdeci">float middle_value_</div><div class="ttdoc">Middle eigen value</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:322</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a0a165ae40c0bc11f0cd3339291eb5380"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a0a165ae40c0bc11f0cd3339291eb5380">pcl::MomentOfInertiaEstimation::major_value_</a></div><div class="ttdeci">float major_value_</div><div class="ttdoc">Major eigen value</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:319</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a6098701f8e074c79181e305f7c63ae0d"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a6098701f8e074c79181e305f7c63ae0d">pcl::MomentOfInertiaEstimation::minor_value_</a></div><div class="ttdeci">float minor_value_</div><div class="ttdoc">Minor eigen value</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:325</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="afe3ee297fd25d8c62bb0311cdfd27cc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe3ee297fd25d8c62bb0311cdfd27cc4">&#9670;&nbsp;</a></span>getEigenVectors()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getEigenVectors </td>
          <td>(</td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>major</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>middle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>minor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method gives access to the computed eigen vectors. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">major</td><td>axis which corresponds to the eigen vector with the major eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">middle</td><td>axis which corresponds to the eigen vector with the middle eigen value </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">minor</td><td>axis which corresponds to the eigen vector with the minor eigen value </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;{</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;  major = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#ae6d6bcb2838c111297e0a7439354d8a7">major_axis_</a>;</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;  middle = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a2c7189a33550fd032889beb8468178f4">middle_axis_</a>;</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;  minor = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#acd2333daeff6b5bce8d5c72a513ffda9">minor_axis_</a>;</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a>);</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a2c7189a33550fd032889beb8468178f4"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a2c7189a33550fd032889beb8468178f4">pcl::MomentOfInertiaEstimation::middle_axis_</a></div><div class="ttdeci">Eigen::Vector3f middle_axis_</div><div class="ttdoc">Middle eigen vector</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:313</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_acd2333daeff6b5bce8d5c72a513ffda9"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#acd2333daeff6b5bce8d5c72a513ffda9">pcl::MomentOfInertiaEstimation::minor_axis_</a></div><div class="ttdeci">Eigen::Vector3f minor_axis_</div><div class="ttdoc">Minor eigen vector</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:316</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_ae6d6bcb2838c111297e0a7439354d8a7"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#ae6d6bcb2838c111297e0a7439354d8a7">pcl::MomentOfInertiaEstimation::major_axis_</a></div><div class="ttdeci">Eigen::Vector3f major_axis_</div><div class="ttdoc">Major eigen vector</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:310</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ab21c613778ad9199790079d7491bd030"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab21c613778ad9199790079d7491bd030">&#9670;&nbsp;</a></span>getMassCenter()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getMassCenter </td>
          <td>(</td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>mass_center</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method gives access to the computed mass center. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. Note that when mass center of a cloud is computed, mass point is always considered equal 1. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">mass_center</td><td>computed mass center </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;{</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;  mass_center = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a83b09737c57fa17ee476be82fc6d2ac9">mean_value_</a>;</div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160; </div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a>);</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="adfee828daeb216b0590784ff936582ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfee828daeb216b0590784ff936582ca">&#9670;&nbsp;</a></span>getMomentOfInertia()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getMomentOfInertia </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; float &gt; &amp;&#160;</td>
          <td class="paramname"><em>moment_of_inertia</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method gives access to the computed moments of inertia. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">moment_of_inertia</td><td>computed moments of inertia </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;{</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;  moment_of_inertia.resize (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#ab66f13f5d744785424443d2ac5df4720">moment_of_inertia_</a>.size (), 0.0f);</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;  std::copy (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#ab66f13f5d744785424443d2ac5df4720">moment_of_inertia_</a>.begin (), <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#ab66f13f5d744785424443d2ac5df4720">moment_of_inertia_</a>.end (), moment_of_inertia.begin ());</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160; </div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a>);</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_ab66f13f5d744785424443d2ac5df4720"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#ab66f13f5d744785424443d2ac5df4720">pcl::MomentOfInertiaEstimation::moment_of_inertia_</a></div><div class="ttdeci">std::vector&lt; float &gt; moment_of_inertia_</div><div class="ttdoc">Stores calculated moments of inertia</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:328</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a86e92ba5fc831ebbe4c106e1e0c60a8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86e92ba5fc831ebbe4c106e1e0c60a8b">&#9670;&nbsp;</a></span>getOBB()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getOBB </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>min_point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>max_point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Matrix3f &amp;&#160;</td>
          <td class="paramname"><em>rotational_matrix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method gives access to the computed oriented bounding box. It returns true if the current values (eccentricity, moment of inertia etc) are valid and false otherwise. Note that in order to get the OBB, each vertex of the given AABB (specified with min_point and max_point) must be rotated with the given rotational matrix (rotation transform) and then positioned. Also pay attention to the fact that this is not the minimal possible bounding box. This is the bounding box which is oriented in accordance with the eigen vectors. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">min_point</td><td>min point of the OBB </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">max_point</td><td>max point of the OBB </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">position</td><td>position of the OBB </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rotational_matrix</td><td>this matrix represents the rotation transform </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;{</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;  min_point = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a3426207a8ff454274a9d2119f884c53d">obb_min_point_</a>;</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;  max_point = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a4a4c3e73866b8153a4e7c901746e9999">obb_max_point_</a>;</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;  position.x = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a231861f9ca6b21588b39cbbf7c0c0426">obb_position_</a> (0);</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;  position.y = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a231861f9ca6b21588b39cbbf7c0c0426">obb_position_</a> (1);</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;  position.z = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a231861f9ca6b21588b39cbbf7c0c0426">obb_position_</a> (2);</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;  rotational_matrix = <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#aa64a8f7a76be5b5714919dfcc4e83ca0">obb_rotational_matrix_</a>;</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;  <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a>);</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a231861f9ca6b21588b39cbbf7c0c0426"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a231861f9ca6b21588b39cbbf7c0c0426">pcl::MomentOfInertiaEstimation::obb_position_</a></div><div class="ttdeci">Eigen::Vector3f obb_position_</div><div class="ttdoc">Stores position of the oriented bounding box</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:346</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a3426207a8ff454274a9d2119f884c53d"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a3426207a8ff454274a9d2119f884c53d">pcl::MomentOfInertiaEstimation::obb_min_point_</a></div><div class="ttdeci">PointT obb_min_point_</div><div class="ttdoc">Min point of the oriented bounding box</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:340</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a4a4c3e73866b8153a4e7c901746e9999"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a4a4c3e73866b8153a4e7c901746e9999">pcl::MomentOfInertiaEstimation::obb_max_point_</a></div><div class="ttdeci">PointT obb_max_point_</div><div class="ttdoc">Max point of the oriented bounding box</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:343</div></div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_aa64a8f7a76be5b5714919dfcc4e83ca0"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#aa64a8f7a76be5b5714919dfcc4e83ca0">pcl::MomentOfInertiaEstimation::obb_rotational_matrix_</a></div><div class="ttdeci">Eigen::Matrix3f obb_rotational_matrix_</div><div class="ttdoc">Stores the rotational matrix of the oriented bounding box</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:349</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ad3eefe58b4467a6fe61a3d892a6f9089"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3eefe58b4467a6fe61a3d892a6f9089">&#9670;&nbsp;</a></span>getProjectedCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getProjectedCloud </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>normal_vector</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr&#160;</td>
          <td class="paramname"><em>projected_cloud</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method simply projects the given input_ cloud on the plane specified with the normal vector. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">normal_vector</td><td>nrmal vector of the plane </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>point belonging to the plane </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">projected_cloud</td><td>projected cloud </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;{</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">float</span> D = - normal_vector.dot (point);</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160; </div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> number_of_points = <span class="keyword">static_cast &lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a>-&gt;size ());</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;  projected_cloud-&gt;points.resize (number_of_points, <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> ());</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160; </div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i_point = 0; i_point &lt; number_of_points; i_point++)</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;  {</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index = (*indices_)[i_point];</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    <span class="keywordtype">float</span> K = - (D + normal_vector (0) * <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[index].x + normal_vector (1) * <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[index].y + normal_vector (2) * <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[index].z);</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    <a class="code" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> projected_point;</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    projected_point.x = <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[index].x + K * normal_vector (0);</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    projected_point.y = <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[index].y + K * normal_vector (1);</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    projected_point.z = <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;points[index].z + K * normal_vector (2);</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    projected_cloud-&gt;points[i_point] = projected_point;</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;  }</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;  projected_cloud-&gt;width = number_of_points;</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;  projected_cloud-&gt;height = 1;</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;  projected_cloud-&gt;header = <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;header;</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;}</div>
<div class="ttc" id="astructpcl_1_1_point_x_y_z_r_g_b_a_html"><div class="ttname"><a href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a></div><div class="ttdoc">A point structure representing Euclidean xyz coordinates, and the RGBA color.</div><div class="ttdef"><b>Definition:</b> point_types.hpp:540</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a81d387c915a945faaf06b9d079366ec7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81d387c915a945faaf06b9d079366ec7">&#9670;&nbsp;</a></span>rotateVector()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::rotateVector </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>vector</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>axis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&#160;</td>
          <td class="paramname"><em>angle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>rotated_vector</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method rotates the given vector around the given axis. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">vector</td><td>vector that must be rotated </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">axis</td><td>axis around which vector must be rotated </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">angle</td><td>angle in degrees </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rotated_vector</td><td>resultant vector </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;{</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;  Eigen::Matrix &lt;float, 3, 3&gt; rotation_matrix;</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">float</span> x = axis (0);</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">float</span> y = axis (1);</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">float</span> z = axis (2);</div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">float</span> rad = M_PI / 180.0f;</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">float</span> cosine = cos (angle * rad);</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">float</span> sine = sin (angle * rad);</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;  rotation_matrix &lt;&lt; cosine + (1 - cosine) * x * x,      (1 - cosine) * x * y - sine * z,    (1 - cosine) * x * z + sine * y,</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;                     (1 - cosine) * y * x + sine * z,    cosine + (1 - cosine) * y * y,      (1 - cosine) * y * z - sine * x,</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;                     (1 - cosine) * z * x - sine * y,    (1 - cosine) * z * y + sine * x,    cosine + (1 - cosine) * z * z;</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160; </div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;  rotated_vector = rotation_matrix * vector;</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aac2fd81cbf6eb02d5f1e1f462d640c6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac2fd81cbf6eb02d5f1e1f462d640c6c">&#9670;&nbsp;</a></span>setAngleStep()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setAngleStep </td>
          <td>(</td>
          <td class="paramtype">const float&#160;</td>
          <td class="paramname"><em>step</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method allows to set the angle step. It is used for the rotation of the axis which is used for moment of inertia/eccentricity calculation. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">step</td><td>angle step </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;{</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  <span class="keywordflow">if</span> (step &lt;= 0.0f)</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a4704720b64b7b5aa90b2154ce0df15ae">step_</a> = step;</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_a4704720b64b7b5aa90b2154ce0df15ae"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#a4704720b64b7b5aa90b2154ce0df15ae">pcl::MomentOfInertiaEstimation::step_</a></div><div class="ttdeci">float step_</div><div class="ttdoc">Stores the angle step</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:298</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ac073db4f8d28516ff2489cbd3d7ea8f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac073db4f8d28516ff2489cbd3d7ea8f9">&#9670;&nbsp;</a></span>setIndices() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setIndices </td>
          <td>(</td>
          <td class="paramtype">const IndicesConstPtr &amp;&#160;</td>
          <td class="paramname"><em>indices</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the vector of indices that represents the input data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">indices</td><td>a pointer to the vector of indices that represents the input data. </td></tr>
  </table>
  </dd>
</dl>

<p>重载 <a class="el" href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">pcl::PCLBase&lt; PointT &gt;</a> .</p>
<div class="fragment"><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;{</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a>.reset (<span class="keyword">new</span> std::vector&lt;int&gt; (*indices));</div>
<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a>  = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160; </div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_ada1eadb824d34ca9206a86343d9760bb"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">pcl::PCLBase::use_indices_</a></div><div class="ttdeci">bool use_indices_</div><div class="ttdoc">Set to true if point indices are used.</div><div class="ttdef"><b>Definition:</b> pcl_base.h:156</div></div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_adadb0299f144528020ed558af6879662"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">pcl::PCLBase::fake_indices_</a></div><div class="ttdeci">bool fake_indices_</div><div class="ttdoc">If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud.</div><div class="ttdef"><b>Definition:</b> pcl_base.h:159</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="abf6953c283561f30f4339698807054b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf6953c283561f30f4339698807054b1">&#9670;&nbsp;</a></span>setIndices() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setIndices </td>
          <td>(</td>
          <td class="paramtype">const IndicesPtr &amp;&#160;</td>
          <td class="paramname"><em>indices</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the vector of indices that represents the input data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">indices</td><td>a pointer to the vector of indices that represents the input data. </td></tr>
  </table>
  </dd>
</dl>

<p>重载 <a class="el" href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">pcl::PCLBase&lt; PointT &gt;</a> .</p>
<div class="fragment"><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;{</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a> = indices;</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a>  = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160; </div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a93e210dc24f0ced029ff2fb7b7e2b645"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a93e210dc24f0ced029ff2fb7b7e2b645">&#9670;&nbsp;</a></span>setIndices() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setIndices </td>
          <td>(</td>
          <td class="paramtype">const PointIndicesConstPtr &amp;&#160;</td>
          <td class="paramname"><em>indices</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the vector of indices that represents the input data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">indices</td><td>a pointer to the vector of indices that represents the input data. </td></tr>
  </table>
  </dd>
</dl>

<p>重载 <a class="el" href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">pcl::PCLBase&lt; PointT &gt;</a> .</p>
<div class="fragment"><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;{</div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a>.reset (<span class="keyword">new</span> std::vector&lt;int&gt; (indices-&gt;indices));</div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a>  = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160; </div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="abefbf08dfcfcac1b0aa0e5b09fe92c9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abefbf08dfcfcac1b0aa0e5b09fe92c9e">&#9670;&nbsp;</a></span>setIndices() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setIndices </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>row_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>col_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nb_rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nb_cols</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the indices for the points laying within an interest region of the point cloud. </p>
<dl class="section note"><dt>注解</dt><dd>you shouldn't call this method on unorganized point clouds! </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">row_start</td><td>the offset on rows </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">col_start</td><td>the offset on columns </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nb_rows</td><td>the number of rows to be considered row_start included </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nb_cols</td><td>the number of columns to be considered col_start included </td></tr>
  </table>
  </dd>
</dl>

<p>重载 <a class="el" href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">pcl::PCLBase&lt; PointT &gt;</a> .</p>
<div class="fragment"><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;{</div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;  <span class="keywordflow">if</span> ((nb_rows &gt; <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;height) || (row_start &gt; <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;height))</div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;  {</div>
<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[PCLBase::setIndices] cloud is only %d height&quot;</span>, <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;height);</div>
<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;  }</div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160; </div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;  <span class="keywordflow">if</span> ((nb_cols &gt; <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;width) || (col_start &gt; <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;width))</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;  {</div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[PCLBase::setIndices] cloud is only %d width&quot;</span>, <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;width);</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;  }</div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160; </div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;  <span class="keywordtype">size_t</span> row_end = row_start + nb_rows;</div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;  <span class="keywordflow">if</span> (row_end &gt; <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;height)</div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  {</div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[PCLBase::setIndices] %d is out of rows range %d&quot;</span>, row_end, <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;height);</div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;  }</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160; </div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <span class="keywordtype">size_t</span> col_end = col_start + nb_cols;</div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  <span class="keywordflow">if</span> (col_end &gt; <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;width)</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  {</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[PCLBase::setIndices] %d is out of columns range %d&quot;</span>, col_end, <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;width);</div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;  }</div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160; </div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a>.reset (<span class="keyword">new</span> std::vector&lt;int&gt;);</div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a>-&gt;reserve (nb_cols * nb_rows);</div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = row_start; i &lt; row_end; i++)</div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> j = col_start; j &lt; col_end; j++)</div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;      <a class="code" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a>-&gt;push_back (<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> ((i * <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;width) + j));</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a>  = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160; </div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="abd6a71e7c5335c7571dec423283317a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd6a71e7c5335c7571dec423283317a1">&#9670;&nbsp;</a></span>setInputCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setInputCloud </td>
          <td>(</td>
          <td class="paramtype">const PointCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the input dataset </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the const boost shared pointer to a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> message </td></tr>
  </table>
  </dd>
</dl>

<p>重载 <a class="el" href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">pcl::PCLBase&lt; PointT &gt;</a> .</p>
<div class="fragment"><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;{</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a> = cloud;</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160; </div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa9149b19d2ffaac9926db2d0f48cff30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9149b19d2ffaac9926db2d0f48cff30">&#9670;&nbsp;</a></span>setNormalizePointMassFlag()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setNormalizePointMassFlag </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>need_to_normalize</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method allows to set the normalize_ flag. If set to false, then point_mass_ will be used to scale the moment of inertia values. Otherwise, point_mass_ will be set to 1 / number_of_points. Default value is true. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">need_to_normalize</td><td>desired value </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;{</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#aac5c807734eaec35e71681a2ab179c1a">normalize_</a> = need_to_normalize;</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_moment_of_inertia_estimation_html_aac5c807734eaec35e71681a2ab179c1a"><div class="ttname"><a href="classpcl_1_1_moment_of_inertia_estimation.html#aac5c807734eaec35e71681a2ab179c1a">pcl::MomentOfInertiaEstimation::normalize_</a></div><div class="ttdeci">bool normalize_</div><div class="ttdoc">Stores the flag for mass normalization</div><div class="ttdef"><b>Definition:</b> moment_of_inertia_estimation.h:304</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aaa915646af4de7b704bd227c3374f0b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa915646af4de7b704bd227c3374f0b3">&#9670;&nbsp;</a></span>setPointMass()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">pcl::MomentOfInertiaEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setPointMass </td>
          <td>(</td>
          <td class="paramtype">const float&#160;</td>
          <td class="paramname"><em>point_mass</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This method allows to set point mass that will be used for moment of inertia calculation. It is needed to scale moment of inertia values. default value is 0.0001. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">point_mass</td><td>point mass </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;{</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  <span class="keywordflow">if</span> (point_mass &lt;= 0.0f)</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#aa0dfe095b9239cb904f3b9716f632765">point_mass_</a> = point_mass;</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;  <a class="code" href="classpcl_1_1_moment_of_inertia_estimation.html#a0b947a169d16283c234908eade8dffa0">is_valid_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>features/include/pcl/features/<a class="el" href="moment__of__inertia__estimation_8h_source.html">moment_of_inertia_estimation.h</a></li>
<li>features/include/pcl/features/impl/<a class="el" href="moment__of__inertia__estimation_8hpp_source.html">moment_of_inertia_estimation.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_moment_of_inertia_estimation.html">MomentOfInertiaEstimation</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
